"""
@Author : 合肥一元数智教育科技有限公司
@Date :  2025/7/8 8:44
@Description : 
正则表达式的基本使用
"""
import re

info = 'ABCABCABCDEFG'

# re   findall
r_list = re.findall('AB', info)
print(r_list)

# 正则对象
regx = re.compile('AB')
new_r_list = regx.findall(info)
print(new_r_list)

"""
.   任意字符  除换行之外

*   零次或多次

+   一次或多次

?   零次或一次

贪婪模式   
"""

html = """
 <div><p>风雨送春归 ,飞雪迎春到</p></div>
 <div><p>已是悬崖百丈冰,犹有花枝俏</p></div>
 <div><p>俏也不争春，只把春来报</p></div>
 <div><p>待到山花烂漫时，她在丛中笑</p></div>
"""
# 获取提取页面结构的正则对象  贪婪
# regx = re.compile('<div><p>.*</p></div>',re.S)
# ?  取消贪婪模式
regx = re.compile('<div><p>.*?</p></div>', re.S)
# 分组  提取正则匹配结果需要输出的内容
regx = re.compile('<div><p>(.*?)</p></div>', re.S)
print(regx.findall(html))

"""
 1. 正则中的分组 ()

"""
info = 'A B C D'
regx = re.compile('\w\s\w')
r_list = regx.findall(info)
#    ['A B', 'C D']
print(r_list)

# ['A', 'C']
regx = re.compile('(\w)\s\w')
r_list = regx.findall(info)
print(r_list)

# ['B', 'D']
regx = re.compile('\w\s(\w)')
r_list = regx.findall(info)
print(r_list)

# [('A', 'B'), ('C', 'D')]
regx = re.compile('(\w)\s(\w)')
r_list = regx.findall(info)
print(r_list)

html = """
 <div class="animal">
    <p class="name">
        <a title="Tigger"></a>
    </p>
    <p class="content">
        two Tigger two tigger run fast
    </p>
</div>
 <div class="animal">
    <p class="name">
        <a title="Rabbit"></a>
    </p>
    <p class="content">
        Small white rabbit white and white
    </p>
</div>
"""
regx = '<div class="animal">.*?<a title="(.*?)"></a>.*?<p class="content">(.*?)</p>'
result_list = re.findall(regx, html, re.S)
for r in result_list:
    print(r[0],':',r[1].strip())

